package com.example.demo.utils.WeixinPayUtil;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Random;
import java.util.UUID;

public class WxOrderUtil {
    public static String generateOrderNumber() {
        // 获取当前时间
        LocalDateTime now = LocalDateTime.now();
        // 设置时间格式
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
        // 将当前时间格式化为字符串
        String formattedDate = now.format(formatter);
        // 生成UUID并转换为字符串，取去掉"-"后的字符串
        String uuid = UUID.randomUUID().toString().replace("-", "");
        // 生成随机字母字符串
        String randomLetters = generateRandomLetters(); // 例如，生成5个随机字母
        // 将时间字符串、UUID和随机字母拼接在一起
        return formattedDate + uuid + randomLetters;
    }

    // 生成指定长度的随机字母字符串
    private static String generateRandomLetters() {
        Random random = new Random();
        StringBuilder sb = new StringBuilder(5);
        for (int i = 0; i < 5; i++) {
            // 生成一个范围在'a'到'z'之间的随机字符
            char randomChar = (char) ('a' + random.nextInt(26));
            sb.append(randomChar);
        }
        return sb.toString();
    }
}
